package com.xmut.mall.search.feign;

import com.xmut.mall.search.utils.RespBean;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

@FeignClient("mall-product")
public interface ProductFeignClient {

    /**
     * 获取sku的详情大图
     * @param skuId
     * @return
     */
    @GetMapping("/product/skudesc/getSkuDescById/{skuId}")
    RespBean getSkuDescById(@PathVariable Long skuId);

    /**
     * 根据当前的catId获取属于当前CateId且可用于检索的attr属性
     * @param cateId
     * @return
     */
    @GetMapping("/product/attr/getAbleToSearchAttrByCateId/{cateId}")
    RespBean getAbleToSearchAttrByCateId(@PathVariable Long cateId);

    /**
     * 根据分类的id获取与其关联的品牌
     * @param cateId
     * @return
     */
    @GetMapping("/product/brand/getBrandByCateId/{cateId}")
    RespBean getBrandByCateId(@PathVariable Long cateId);

    /**
     * 根据skuId获取该sku商品的展示图片
     * @param skuId
     * @return
     */
    @GetMapping("/product/skuimages/getSkuImageBySkuId/{skuId}")
    RespBean getSkuImageBySkuId(@PathVariable Long skuId);

    /**
     * 通过spuId获取商品销售分组（颜色和存储）
     * @param spuId
     * @return
     */
    @GetMapping("/product/skusaleattrvalue/getSkuSaleAttrValueBySpuId/{spuId}")
    RespBean getSkuSaleAttrValueBySpuId(@PathVariable Long spuId);

    /**
     * 根据spuId获取spu信息
     * @param spuId
     * @return
     */
    @GetMapping("/product/spuinfo/getSpuInfoBySpuId/{spuId}")
    RespBean getSpuInfoBySpuId(@PathVariable Long spuId);

    /**
     * 根据分类id与skuId spuId获取商品详情页选项卡结构
     * @param cateId
     * @return
     */
    @GetMapping("/product/skusaleattrvalue/getSkuSaleAttrValueByCateId/{cateId}/{skuId}/{spuId}")
    RespBean getSkuSaleAttrValueByCateId(@PathVariable("cateId") Long cateId,
                                                @PathVariable("skuId") Long skuId,
                                                @PathVariable("spuId") Long spuId);

    /**
     * 根据spuId获取商品的展示属性
     * @param spuId
     * @return
     */
    @GetMapping("/product/productattrvalue/getProductAttrValueBySpuId/{spuId}")
    RespBean getProductAttrValueBySpuId(@PathVariable Long spuId);
}
